#include "myserver.h"
#include <QThreadPool>
#include "clientrunable.h"
#include <QDebug>



MyServer::MyServer(QTcpServer *parent)
    : QTcpServer(parent),db(InitDatabase::GetInstance())
{
}

MyServer::~MyServer()
{

}

/* 启动服务器监听 */
void MyServer::StartServer(int port)
{
    if(this->listen(QHostAddress::Any,port))    /* any:监听本地客户端的所有IP */
    {
        qDebug() << "服务器 listen";
    }
    else
    {
        qDebug() << "服务器 listen false";
    }
}

/* 重写新连接的虚函数 */
void MyServer::incomingConnection(qintptr handle)
{
    clientRunable * c = new clientRunable(handle);   // 创建一个线程运行对象
    QThreadPool::globalInstance()->start(c);             // 线程池中 启动线程
}

// 连接数据库
QSqlDatabase &InitDatabase::GetInstance()
{
    if(!db.isValid())
    {
        db = QSqlDatabase::addDatabase("QMYSQL");       // 根据字符串获取数据库驱动
        db.setHostName("192.168.15.128");
        db.setUserName("root");
        db.setPassword("1");
        db.setPort(3306);
        db.setDatabaseName("EMS");

        if(db.open())
        {
            qDebug()<<"数据库连接成功!";
        }
        else
        {
            qDebug()<<"数据库连接失败!:"<<db.lastError()<<endl;;
        }
    }
    return db;
}




































